package com.rc.evcharger.service.log;

import com.rc.evcharger.mongo.ElecPileFaultRecordLogDao;
import com.rc.evcharger.vo.log.ElecPileFaultRecordLog;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;

/**
 * mongodb查询语法：http://netkiller.sourceforge.net/java/spring/data/mongodb/mongoTemplate.Query.html
 * Created by sven on 2018-05-26
 */
@Service
public class ElecPileFaultRecordLogServiceImpl implements ElecPileFaultRecordLogService {
    private static Logger logger = LogManager.getLogger(ElecPileFaultRecordLogServiceImpl.class);
    private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");//时间格式要与mongodb对应

    @Autowired
    private ElecPileFaultRecordLogDao platformOperateLogDao;

    @Override
    public void addElecPileFaultRecordLog(ElecPileFaultRecordLog log) {
        platformOperateLogDao.insert(log, log.getCollectionName());
        logger.info("addElecPileFaultRecordLog mongodb 创建成功,:{},:{}", log.getCollectionName(),log.getEpNo());
    }

//    @Override
//    public PageImpl<ElecPileFaultRecordLog> findPagePlatformOperateLog(ElecPileFaultRecordLogSearch search) {
//        //mongoDB不同，因为mongo中的date类型以UTC（Coordinated Universal Time）存储，就等于GMT（格林尼治标准时）时间,
//        //而系统时间使用的是GMT+0800时间，两者正好相差8个小时。也就是用java 代码插入的时间类型的值都会被减8小时,
//        //但是查询出来的结果时间还是会被转换回来（不以时间为条件查询的话基本没什么问题）
//        //如:2019-11-10T08:36:00Z
//
//        //将ISO 8601 日期格式进行转换
//        //DateTimeFormatter isoFormat = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");
//        //DateTimeFormatter dfShort = DateTimeFormat.forPattern("yyyy-MM-dd");
//        DateTimeFormatter dfLong = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
//
//        Query query = new Query();
//        //if (StringUtils.isNotBlank(search.getTenantCode())) {
//        //query.addCriteria(Criteria.where("orderNum").is(search.getTenantCode()));
//        //}
//
//        if (StringUtils.isNotBlank(search.getStartTime())) {
//            DateTime dt = dfLong.parseDateTime(search.getStartTime());
//
//            //如果结束时间为空,就自动加1天,否则mongodb查不出来数据
//            //if (StringUtils.isBlank(search.getEndTime())) {
//                dt = dt.plusDays(1);
//                search.setEndTime(dt.toString(dfLong));
//            //}
//
//            query.addCriteria(
//                    new Criteria().andOperator(
//                            Criteria.where("createTime").gte(search.getStartTime()),
//                            Criteria.where("createTime").lte(search.getEndTime())
//                    )
//            );
//
//            logger.info("query 查询:{}", query.toString());
//
//            //排序
//            Sort sort = new Sort(Sort.Direction.ASC, "createTime");
//
//            //在开始时间的年月的表中查找
////            PlatformOperateLog log = new PlatformOperateLog(dt.toDate());
////            PageImpl<PlatformOperateLog> pages = platformOperateLogDao.findPage(query, sort, search.getOffset(), search.getLimit(), log.getCollectionName());
////            return pages;
//        } else {
//            return null;
//        }
//    }
}
